package org.xx.armory.config;

/**
 * 定义有名字的对象的配置项。
 */
public class NamedPropertiesSection
        extends PropertiesSection
        implements NamedSection {
    private String name;
    private boolean enabled;
    private String className;
    private String factoryName;

    public NamedPropertiesSection() {
        this.name = "";
        this.enabled = true;
        this.className = "";
        this.factoryName = "";
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public final String getName() {
        return this.name;
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public final void setName(
            String value
    ) {
        this.name = value;
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public boolean isEnabled() {
        return this.enabled;
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public void setEnabled(
            boolean enabled
    ) {
        this.enabled = enabled;
    }

    /**
     * 获取对象的类型全名。
     *
     * @return 对象的类型全名。
     */
    public String getClassName() {
        return className;
    }

    /**
     * 设置对象的类型全名。
     *
     * @param className
     *         对象的类型全名。
     */
    public void setClassName(
            String className
    ) {
        this.className = className;
    }

    /**
     * 获取工厂名。
     *
     * @return 工厂名。
     */
    public String getFactoryName() {
        return factoryName;
    }

    /**
     * 设置工厂名。
     *
     * @param factoryName
     *         工厂名。
     */
    public void setFactoryName(
            String factoryName
    ) {
        this.factoryName = factoryName;
    }
}
